package cn.tedu.web.controller;

import cn.tedu.web.mapper.MySQLMapper;
import cn.tedu.web.pojo.User;
import cn.tedu.web.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

 
@Controller
public class IndexController {

	@Autowired
	private MySQLMapper mapper;
	@Autowired
	private UserService service;

	// 直接将返回值响应给前端
	@ResponseBody
	// 限制了请求方法是 POST, 如果采用了不是指定的方法发起的请求,则向前端反馈 405 的状态码
	@RequestMapping("/test")
	public String test() {
		service.insert();
		return "Hello World";
	}

	// 如果返回值不是浏览器能直接识别的文本, 则需要转换器
	// 在 RestFull 编程中, JSON 字符串作为标准的消息交换的格式
	// 这里需要将 Map 对象转换为浏览器能直接识别的 JSON 字符串
	@ResponseBody
	@RequestMapping("map")
	public Map<String, Object> map() {
		Map<String, Object> map = new HashMap<>();
		map.put("name", "timor");
		map.put("age", 18);
		map.put("weight", 45.8);
		map.put("version", mapper.version());
		return map;
	}

	@ResponseBody
	@RequestMapping("get")
	public User get() {
		User u = new User();
		u.setBirthday(new Date());
		u.setId(1L);
		u.setName("Timor");
		u.setWeight(37.9);
		return u;
	}

}